package com.zhu.instructions.base;

import com.zhu.rtda.Frame;
import java.nio.ByteBuffer;
/**
 * 基类：操作数为双字节无符号索引的指令
 * 通常与 wide 指令配合使用，或用于索引 > 255 的局部变量
 *
 * 字节码格式：[opcode] [index_hi] [index_lo]
 * index 占 2 字节（大端序）
 */
public class Index16Instruction implements Instruction{
    // 局部变量索引（0 ~ 65535）
    protected int index;

    @Override
    public void fetchOperands(ByteBuffer codeBuffer) {
        // 读取2字节，并转为无符号整数（大端序）
        this.index = Short.toUnsignedInt(codeBuffer.getShort());
    }

    @Override
    public void execute(Frame frame) {

    }

}
